#!/bin/bash

# 调试运行脚本

echo "=== 调试运行 moparse ==="

# 进入modb目录
cd /home/apachee/trunk/Crystal/CrystalFlowAnalyzer/modb

# 设置环境变量
export PROJ_ROOT=/home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc

echo "环境变量 PROJ_ROOT 设置为: $PROJ_ROOT"

# 验证环境变量是否正确设置
if [ -z "$PROJ_ROOT" ]; then
    echo "错误: PROJ_ROOT 环境变量未设置"
    exit 1
fi

# 验证关键文件是否存在
if [ ! -f "/home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc/design/usb2/src/DWC_usb3.lst" ]; then
    echo "错误: 文件列表文件不存在"
    exit 1
fi

echo "文件列表文件存在"

# 显示文件列表的前几行
echo "文件列表前10行:"
head -10 /home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc/design/usb2/src/DWC_usb3.lst

# 创建一个更小的测试文件列表，只包含前几个文件，用于调试
echo "创建调试用的小型文件列表..."
head -10 /home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc/design/usb2/src/DWC_usb3.lst > debug_test.list

# 显示小型文件列表内容
echo "小型文件列表内容:"
cat debug_test.list

# 运行调试命令
echo "运行调试命令..."
echo "命令: ./moparse -f debug_test.list -o debug_test.modb"

# 使用timeout限制运行时间，避免长时间阻塞
timeout 60s ./moparse -f debug_test.list -o debug_test.modb 2>&1

# 检查命令执行结果
if [ $? -eq 0 ]; then
    echo "命令执行成功"
    
    # 检查是否生成了modb文件
    if [ -f "debug_test.modb" ]; then
        echo "✓ 成功生成modb文件"
        ls -la debug_test.modb
        
        # 显示文件信息
        echo "显示生成的modb文件信息:"
        ./moparse -s debug_test.modb | head -20
    else
        echo "✗ 未生成modb文件"
    fi
else
    echo "命令执行失败或超时"
fi

# 清理生成的文件
rm -f debug_test.list debug_test.modb

echo "=== 调试运行完成 ==="